Add gtk_window_group_get_windows().
authorTim Janik <timj@src.gnome.org>
Fri, 20 Jun 2008 11:10:55 +0000 (11:10 +0000)
committerTim Janik <timj@src.gnome.org>
Fri, 20 Jun 2008 11:10:55 +0000 (11:10 +0000)
* gtk/gtk.symbols:
* gtk/gtkwindow.[ch] (gtk_window_group_get_windows): New function.

svn path=/trunk/; revision=20632

gtk/gtk.symbols
gtk/gtkwindow.c
gtk/gtkwindow.h

index 151fa0cabbf9c8a077e5fdcf869f24af9075479a..3bf67ca8e83ff4753410ddbd0a2904d49071b8ed 100644 (file)
@@ -4822,6 +4822,7 @@ gtk_window_group_add_window
 gtk_window_group_get_type G_GNUC_CONST
 gtk_window_group_new
 gtk_window_group_remove_window
+gtk_window_group_get_windows
 gtk_window_has_toplevel_focus
 gtk_window_iconify
 gtk_window_is_active
index ffd05e8d1cc8ee00915954db8d61a626fb661807..54c3a6d31d02f93615d39a329769ea9b76de58fa 100644 (file)
@@ -7456,6 +7456,37 @@ gtk_window_group_remove_window (GtkWindowGroup *window_group,
   g_object_unref (window);
 }
 
+/**
+ * gtk_window_group_get_windows:
+ * @window_group: a #GtkWindowGroup
+ *
+ * Returns a list of the #GtkWindows that belong to @window_group.
+ *
+ * Returns: A newly-allocated list of windows inside the group.
+ *
+ * Since: GSEAL-branch
+ **/
+GList *
+gtk_window_group_get_windows (GtkWindowGroup *window_group)
+{
+  GList *toplevels, *toplevel, *group_windows;
+
+  g_return_val_if_fail (GTK_IS_WINDOW_GROUP (window_group), NULL);
+
+  group_windows = NULL;
+  toplevels = gtk_window_list_toplevels ();
+
+  for (toplevel = toplevels; toplevel; toplevel = toplevel->next)
+    {
+      GtkWindow *window = toplevel->data;
+
+      if (window_group == window->group)
+       group_windows = g_list_prepend (group_windows, window);
+    }
+
+  return g_list_reverse (group_windows);
+}
+
 /**
  * gtk_window_get_group:
  * @window: a #GtkWindow, or %NULL
index 40cb937cd504b8f0b544aac89d533642a4ada1ed..f10fb1e414b2e335681ddb4d37cd744a2b6110de 100644 (file)
@@ -394,6 +394,8 @@ void             gtk_window_group_add_window    (GtkWindowGroup     *window_grou
                                                 GtkWindow          *window);
 void             gtk_window_group_remove_window (GtkWindowGroup     *window_group,
                                                 GtkWindow          *window);
+GList *          gtk_window_group_get_windows   (GtkWindowGroup     *window_group);
+
 
 /* --- internal functions --- */
 void            _gtk_window_internal_set_focus (GtkWindow *window,